package com.lfs.greedy;

/*
    买卖股票的最佳时机2
 */
public class MaxProfit122 {
    /*
        prices = [7, 1, 5, 3, 6, 4]
        每天的利润:   -6  4 -2  3 -2     最大利润:4+3=7
        解释: (这里的第一天相当于数组中的0)
        第一天买第二天卖出 获 -6      第一天买的时候7 第二天跌成1 获利 -6
        第二天买第三天卖出 获  4      第二天买的时候1 第三天长成5 获利  4
        第三天买第四天卖出 获 -2      第三天买的时候5 第四天跌成3 获利 -2
        第四天买第五天卖出 获  3      第四天买的时候3 第五天长成6 获利  3
        第五天买第六天卖出 获 -2      第五天买的时候6 第六天跌成4 获利 -2

        只能持有一股股票 则 4 + 3 =7
        我们是在知道每天是赚是亏的情况下才能进行推理如何获利最大
     */
    public int maxProfit(int[] prices) {
        int result = 0;
        for (int i = 1; i < prices.length; i++) {//只有从第二天开始才有卖的操作 才有得到利益的操作
            result += Math.max(prices[i] - prices[i - 1], 0);//如果是负数的话直接加0,相当于跳过了这一天的利润(负利润)
        }
        return result;
    }
}
